package com.itheima.a03.bean的生命周期;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
public class LifeCycleBean {
    private static final Logger log = LoggerFactory.getLogger(LifeCycleBean.class);
    /*1.构造方法执行*/
    public LifeCycleBean() {
        log.debug("构造");
    }
    /*2.依赖注入的方法*/
    /*下面@Value这样写是注入的一个环境变量的值,也就是当类型是String类型的时候，@Autowired就找不到，需要根据@Value的方式注入进来*/
    @Autowired
    public void autowire(@Value("${JAVA_HOME}") String home) {
        log.debug("依赖注入: {}", home);
    }
    /*3.初始化方法*/
    @PostConstruct
    public void init() {
        log.debug("初始化");
    }
    /*4.销毁方法*/
    /**/
    @PreDestroy
    public void destroy() {
        log.debug("销毁");
    }
}
